// #include <iostream>
// #include <memory>
// #include <vector>
// #include <any>
// #include <assert.h>


// #include <gtest/gtest.h>

// using namespace std;

// class test_interface
// {
// private:
//     /* data */
// public:
//     virtual ~test_interface(){};
//     virtual void print() = 0;
// };

// class Drived : public test_interface
// {
// private:
//     /* data */
// public:
//     virtual ~Drived(){};
//     virtual void print() = 0;
// };

// class C : public Drived{
// public:
//     virtual ~C(){
//         std::cout << "C destructor" << std::endl;
//     }

//     virtual void print(){
//         std::cout << "Print test++++++++++" << std::endl;
//     }
// };

// void test_any(std::any xx){
//     std::cout << "any test xx: " << std::any_cast<int>(xx) << std::endl;

// }

// TEST(test_interface, interface){
//     test_interface* tt = new C();
//     Drived* d = dynamic_cast<Drived*>(tt);
//     d->print();
//     tt->print();

//     test_any(12);
// }